package com.hbt.chat.logica;

import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import com.hbt.chat.gui.GUICliente;

public class Cliente {

	private static ServerSocket servidor; //
	private static Socket cliente; //Socket para conectarse con el cliente
	private static String ip = "172.20.8.88"; //ip a la cual se conecta

	public Cliente() {
		GUICliente main = new GUICliente(); //Instanciacion de la clase Principalchat
		main.setLocationRelativeTo(null);   //Centrar el JFrame
		main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //habilita cerrar la ventana
		ExecutorService executor = Executors.newCachedThreadPool(); //Para correr los threads

		try {
			main.mostrarMensaje("Buscando Servidor ...");
			cliente = new Socket(InetAddress.getByName(ip), 8080); //comunicarme con el servidor
			main.mostrarMensaje("Conectado a :" + cliente.getInetAddress().getHostName());

			main.habilitarTexto(true); //habilita el texto

			//Ejecucion de los Threads
			executor.execute(new ThreadRecibe(cliente, main));
			executor.execute(new ThreadEnvia(cliente, main));

		} catch (IOException ex) {
			Logger.getLogger(GUICliente.class.getName()).log(Level.SEVERE, null, ex);
		} //Fin del catch
		finally {
		}
		executor.shutdown();
	}
	
	public static void main(String[] args) {
		new Cliente();
	}
}
